package com.abe.bathsystem.contract;


import com.abe.bathsystem.entity.serial.SerialDataEntity;
import com.abe.bathsystem.utils.SerialPortParse;
import com.abe.mvpcore.BaseView;

public class SerialPortContract {
    public interface SerialPortView extends BaseView {
        /**
         * 连接成功
         */
        void onConnectSuccess();

        /**
         * 连接成功
         */
        void onCloseSuccess();

        /**
         * 发送消息
         */
        void onSendDataSuccess();

        /**
         * 接收消息
         */
        void onReceiveData(Boolean isSuccess, @SerialPortParse.SerialPortParseDataType String parseType, SerialDataEntity data);

        /**
         * 错误
         */
        void onError(String errorMsg);

        SerialPortPresenter serialPortPresenter();
    }

    public interface SerialPortPresenter {
        public interface ISerialPortBack {
            public void onResult(int code, SerialDataEntity data, String errorMSG);
        }

        /**
         * 开启串口
         */
        void openSerialPort(int type);

        /**
         * 下发命令
         */
        void sendCommand(byte[] buffer, boolean isTest);

        /**
         * 关闭串口
         */
        void closeSerialPort();
    }

    public interface Model {
        /**
         * 开启串口
         */
        void openSerialPort(int type);

        /**
         * 下发命令
         */
        void sendCommand(byte[] buffer, boolean isTest);

        /**
         * 关闭串口
         */
        void closeSerialPort();
    }
}
